/**

 Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组，
 其排列与使用 for...in
 循环遍历该对象时返回的顺序一致（区别在于 for-in 循环还会枚举原型链中的属性）。


 */


// 测试 不会枚举原型链上的
Object.prototype.nameE='blue'


let simpleColors = {
    nameA: 'a',
    nameB: 'b'
};
let natureColors = {
    colorC: 'green',
    colorD: 'yellow'
};

//指定natureColors的原型到simpleColors
Object.setPrototypeOf(natureColors, simpleColors);


for (const [key, value] of Object.entries(natureColors)) {
    console.log(`${key}: ${value}`)
}
//colorC: green
//colorD: yellow

console.log(natureColors['nameA']) // a
console.log(natureColors['nameB']) // b


//测试
var obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

//测试
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]


//测试
var obj = [1,2,3];
console.log(Object.entries(obj)); // [ [ '0', 1 ], [ '1', 2 ], [ '2', 3 ] ]

//测试
console.log(Object.entries('foo')); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]